home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DBio / DSeqViews.h < prev    next >
Text File  |  1996-07-05  |  6KB  |  186 lines

  1. // DSeqViews.h
  2. // d.g.gilbert, 1990-1996
  3.  
  4. #ifndef _DSEQVIEWS_
  5. #define _DSEQVIEWS_
  6.  
  7. #include "DSequence.h"
  8. #include "DSeqList.h"
  9. #include <DTableView.h>
  10. #include <DDialogText.h>
  11. #include <DREnzyme.h>
  12. #include <DUtil.h>
  13.  
  14.  
  15. class DSeqDoc;
  16. class DAlnSlider;
  17. class DAlnView;
  18.  
  19.  
  20. class DAlnSequence : public DTextLine, public DKeyCallback
  21. {
  22. public:
  23.     DSequence* fSeq;
  24.     Boolean  fVisible;
  25.     DAlnView*    fAlnView;
  26.     long        fNcols;
  27.     
  28.     DAlnSequence(long id, DAlnView* itsSuperior, short charwidth = 1);
  29.   virtual void Scroll(Boolean vertical, DView* scrollee, long newval, long oldval);        
  30.     virtual void ShowEdit(Boolean newseq = true);
  31.     virtual void HideEdit();
  32.   virtual void ProcessKey( char c);
  33.     virtual void selectAction();
  34.     virtual void deselectAction();
  35.     virtual void SetColumns( long ncolumns);
  36.     virtual Boolean IsMyAction(DTaskMaster* action);
  37.     virtual void Select(long start, long length);
  38. };
  39.  
  40.  
  41. class DAlnView : public DTableView
  42. {
  43. public:
  44.     DSeqList    * fSeqList;  
  45.     DSeqDoc        *    fDoc;          
  46.     DAlnSequence * fEditSeq;  
  47.     long            fEditRow;
  48.     short            fMaskLevel;
  49.     Boolean        fLocked, fOwnSeqlist;     
  50.     DAlnSlider    * fSlider;
  51.     DSequence        * fCurSeq; // temp used in draw, elsewhere?
  52.     unsigned long    *    fColcolors;
  53.     short        fNcolcolors, fColorBases;
  54.     
  55.     enum { kindAlnView = 23345, idAlnView = 22902 };
  56.     enum viewmodes { kModeSlide,kModeEdit,kModeMask1,kModeMask2,kModeMask3,kModeMask4 };
  57.     enum viewcolors { kBaseBlack, kBaseColor, kBaseVarLite };
  58.     
  59.     DAlnView( long id, DView* itsSuper, DSeqDoc* itsDocument, DSeqList* itsSeqList, long pixwidth, long pixheight);
  60.     virtual ~DAlnView();
  61.  
  62.     virtual DSequence* SeqAt( long aRow) 
  63.         {
  64.         if (fSeqList) return fSeqList->SeqAt(aRow);
  65.         else return NULL;
  66.         }
  67.  
  68.     virtual void Click(Nlm_PoinT mouse);
  69.     virtual void Drag(Nlm_PoinT mouse);
  70.     virtual void Hold(Nlm_PoinT mouse);
  71.     virtual void Release(Nlm_PoinT mouse);
  72.     virtual void DoubleClickAt(long row, long col);
  73.     virtual void SingleClickAt(long row, long col);
  74.     virtual void CharHandler(char c); 
  75.     virtual void SeqMeter(long row, long col);
  76.     virtual DSequence* SelectedSequence(long& selectedRow);
  77.     virtual DSequence* SelectedSequence() { 
  78.         long selectedRow; return SelectedSequence(selectedRow);
  79.         }
  80.     virtual void Scroll(Boolean vertical, DView* scrollee, long newval, long oldval);
  81.  
  82.     virtual void UpdateWidth( DSequence* aSeq);
  83.     virtual void UpdateAllWidths(void);
  84.     virtual void UpdateSize(void);
  85.     virtual void CheckViewCharWidth();
  86.     
  87.     virtual void addToAlnList( DSequence* aSeq);
  88.     virtual void registerInsertLast( DSequence* aSeq);
  89.     virtual void MakeConsensus();
  90.     virtual char* FindCommonBases( short minCommonPerCent);
  91.     virtual void HiliteCommonBases();
  92.     virtual void HiliteORFs();
  93.     virtual Boolean MaskCommand(short command);
  94.     virtual void ReplicateMask();
  95.     virtual Boolean IsMasked();
  96.  
  97.     virtual void DeInstallEditSeq();
  98.     virtual void InstallEditSeq(long row, long selStart, long selEnd, Boolean doLight);
  99.     virtual void SetTextLock( Boolean turnon);
  100.     virtual void SetViewMode( short viewmode);
  101.     virtual void SetViewColor( short colorkind);
  102.  
  103.         
  104.     virtual void TrackMouse( short aTrackPhase,
  105.                     Nlm_PoinT& anchorPoint, Nlm_PoinT& previousPoint,
  106.                     Nlm_PoinT& nextPoint,    Nlm_Boolean mouseDidMove);
  107.     virtual void TrackFeedback( short aTrackPhase,
  108.                     const Nlm_PoinT& anchorPoint, const Nlm_PoinT& previousPoint,
  109.                     const Nlm_PoinT& nextPoint, Nlm_Boolean mouseDidMove, Nlm_Boolean turnItOn);
  110.  
  111.     virtual void Resize(DView* superview, Nlm_PoinT sizechange);
  112.     virtual void GetReadyToShow();
  113.     virtual void Show();
  114.     virtual void DrawAlnInStyle(baseColors colors, Boolean swapBackColor, 
  115.                                                             char*    pText, long indx, long len, long row);
  116.     virtual void DrawAlnColors(baseColors colors, Boolean swapBackColor, 
  117.                                                             char*    pText, long indx, long len, long row);
  118.     virtual void DrawNoColors(Nlm_RecT r, long row);
  119.     virtual void DrawAllColors(Nlm_RecT r, long row);
  120.     virtual void DrawRow(Nlm_RecT r, long row);
  121.     virtual void Draw();
  122.                 
  123.     //virtual Boolean ContainsClipType(ResType aType); // override 
  124.     //virtual void WriteToDeskScrap(void); // override 
  125.     
  126.     //virtual void DoMouseCommand(VPoint VAR theMouse, TToolboxEvent event, Point hysteresis); // override 
  127.     //virtual Boolean HandleMouseDown( VPoint theMouse, TToolboxEvent event, hysteresis: Point); // override 
  128. };
  129.  
  130.  
  131. class DAlnITitle : public DTableView
  132. {
  133. public:
  134.     short                fNameWidth, fSizeWidth, fKindWidth;    //max #chars in name column
  135.     DAlnITitle( long id, DView* itsSuper, long pixwidth, long pixheight);
  136.     virtual void GetReadyToShow();
  137.     virtual void Click(Nlm_PoinT mouse);
  138.     virtual void DoubleClickAt(long row, long col);
  139.     virtual void SingleClickAt(long row, long col);
  140.     virtual void DrawCell(Nlm_RecT r, long row, long col);
  141. };
  142.  
  143. class DAlnIndex : public DTableView  
  144. {
  145. public:
  146.     DSeqList*     fSeqList; // NOTE: TSeqListDoc "owns" this list
  147.     DSeqDoc*        fDoc;         // our owner
  148.     short                fNameWidth, fSizeWidth, fKindWidth;    //max #chars in name column
  149.     
  150.     DAlnIndex( long id, DView* itsSuper, DSeqDoc* itsDocument, DSeqList* itsSeqList, long pixwidth, long pixheight);
  151.     virtual void Click(Nlm_PoinT mouse);
  152.     virtual void Drag(Nlm_PoinT mouse);
  153.     virtual void Hold(Nlm_PoinT mouse);
  154.     virtual void Release(Nlm_PoinT mouse);
  155.     virtual void DoubleClickAt(long row, long col);
  156.     virtual void SingleClickAt(long row, long col);
  157.     virtual void Scroll(Boolean vertical, DView* scrollee, long newval, long oldval);
  158.     virtual void GetReadyToShow();
  159.     virtual void Show();
  160.     virtual char* GetItemTitle(short item, char* title = NULL, size_t maxsize = 256);  
  161.     virtual void DrawCell(Nlm_RecT r, long row, long col);
  162. };
  163.  
  164. class DAlnHIndex : public DPanel  
  165. {
  166. public:
  167.     DSeqList*     fSeqList; // NOTE: TSeqListDoc "owns" this list
  168.     DSeqDoc*        fDoc;         // our owner
  169.     long                fLastCol;
  170.     
  171.     DAlnHIndex( long id, DView* itsSuper, DSeqDoc* itsDocument, DSeqList* itsSeqList, long pixwidth, long pixheight);
  172.     virtual void Resize(DView* superview, Nlm_PoinT sizechange);
  173.     virtual void Drag(Nlm_PoinT mouse);
  174.     virtual void Hold(Nlm_PoinT mouse);
  175.     virtual void Release(Nlm_PoinT mouse);
  176.     virtual void Click(Nlm_PoinT mouse);
  177.     virtual void ClickColumn(Nlm_PoinT mouse);
  178.     virtual void Scroll(Boolean vertical, DView* scrollee, long newval, long oldval);
  179.     virtual void Draw();
  180. };
  181.  
  182.  
  183.  
  184.  
  185. #endif //_DSEQVIEWS_
  186.